#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//void Find_count(int arr[3][3], int r, int c, int n)
//{                              //行3  列3   关键数n
//	int x = 0;
//	int y = c-1;//将两个下标初始化为关键数的下标
//	while (x < r - 1 && y>0)//行再+小于3，列再-大于0
//	{
//		
//		if (n > arr[x][y])//n与关键数比较，如果大于
//		{
//			x++;//行+1
//		}
//		if (n < arr[x][y])//n与关键数比较，如果小于
//		{
//			y--;//列-1
//		}
//		if (n == arr[x][y])//比较是否相同
//		{
//			printf("找到了，下标为%d %d", x, y);
//			return 0;//相同就会在打印完成之后跳出
//		}
//	}
//	printf("找不到");//来到这里代表找不到
//
//
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
//	Find_count(arr, 3, 3,n);
//
//	return 0;
//}
//void Find_count(int arr[3][3], int* r, int* c, int n)
//{                              //行3  列3   关键数n
//	int x = 0;
//	int y = *c - 1;//将两个下标初始化为关键数的下标
//	while (x < *r - 1 && y>0)//行再+小于3，列再-大于0
//	{
//
//		if (n > arr[x][y])//n与关键数比较，如果大于
//		{
//			x++;//行+1
//		}
//		if (n < arr[x][y])//n与关键数比较，如果小于
//		{
//			y--;//列-1
//		}
//		if (n == arr[x][y])//比较是否相同
//		{
//			return 0;//相同就会在打印完成之后跳出
//		}
//	}
//
//
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
//	int m = 3;
//	int k = 3;
//
//	Find_count(arr, &m, &k, n);
//
//	return 0;
//}
//#include<assert.h>
//void left_move(char* s, int n)
//{
//	int j = 0;
//	assert(s);//断言
//	int len = strlen(s);//求出字符串的长度，作为后面的上限条件
//	for (j = 0; j < n; j++)//外层for决定了左旋一次所执行的次数，由n决定
//	{
//		int i = 0;
//		char tmp = *s;//将第一个字符用临时变量存储起来
//		for (i = 0; i <len-1 ; i++)//0~len-1，可以将后面的字符依次向前赋值
//		{
//			*(s + i) = *(s + i + 1);//两个相邻的字符由后往前赋值
//		}
//		*(s + len - 1) = tmp;//最后把临时变量赋给最后一个字符
//	}
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	char arr[] = { "ABCDEF" };
//	left_move(arr,n);
//	printf("%s", arr);
//
//	return 0;
#include<assert.h>
#include<string.h>
void reverse(char * left,char * right)//逆序左指针到右指针之间的所有元素
{
	assert(left && right);
	while (left < right)
	{
		char* tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}
void left_move(char* s, int n)
{
	int len = strlen(s);
	n = n % len;//大于字符串总数的数%len

	//逆序左面n个字符
	reverse(s, s+n-1);      //左指针为s（字符串首地址），右指针为s+n-1（第n个字符的地址）

	 //逆序右面所剩字符
	reverse(s+n, s+len-1);  //左指针为s + n（第n + 1个字符的地址），右指针为s + len - 1（最后一个字符的地址）

	//逆序右面所剩字符    
	reverse(s , s+len-1);   //左指针为s（字符串首地址），右指针为s+len-1（最后一个字符的地址）
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	char arr[] = { "ABCDEF" };
	left_move(arr, n);
	printf("%s", arr);

	return 0;
}